home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / locale.h < prev    next >
C/C++ Source or Header  |  1991-12-16  |  4KB  |  145 lines

  1. /*
  2.  * locale.h --
  3.  *
  4.  *    Declarations of things specific to this locale (USA).
  5.  *
  6.  * Copyright 1991 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that this copyright
  10.  * notice appears in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  *
  15.  * $Header: /sprite/src/lib/include/RCS/locale.h,v 1.2 91/12/16 14:04:28 rab Exp $
  16.  */
  17.  
  18. #ifndef _LOCALE_H
  19. #define _LOCALE_H
  20.  
  21. #ifndef NULL
  22. #define NULL            0
  23. #endif
  24.  
  25. #define LC_ALL          0
  26. #define LC_CTYPE        1
  27. #define LC_NUMERIC      2
  28. #define LC_TIME         3
  29. #define LC_MONETARY     4
  30. #ifndef _POSIX_SOURCE
  31. #define LANGINFO        5
  32. #endif      
  33. #define LC_COLLATE      6
  34. #define LC_MESSAGES     7
  35. #define _LC_LAST        7
  36.  
  37. #ifndef _POSIX_SOURCE
  38. #define MAXLOCALE       8
  39.  
  40. #define ON      1
  41. #define OFF     0
  42.  
  43. /* Maximum number of characters in the locale name */
  44.  
  45. #define MAXLOCALENAME   14
  46.  
  47. /* Maximum number of substitute mappings in LC_COLLATE table */
  48.  
  49. #define MAXSUBS         64
  50.  
  51. /* Maximum width of domain name */
  52.  
  53. #define MAXDOMAIN       255
  54.  
  55. /* Maximum width of format string for message domains */
  56.  
  57. #define MAXFMTS         32
  58.  
  59. /* Maximum width of the message string */
  60.  
  61. #define MAXMSGSTR       255
  62.  
  63. /* The directory where category components are kept */
  64.  
  65. #define LOCALE_DIR      "/usr/share/lib/locale/"
  66.  
  67. /* The directory that is private to an individual workstation user */
  68.  
  69. #define PRIVATE_LOCALE_DIR      "/etc/locale/"
  70.  
  71. /* The name of the file that contains default locale */
  72.  
  73. #define DEFAULT_LOC             ".default"
  74.  
  75. /* size of "ctype" */
  76.  
  77. #define CTYPE_SIZE      514
  78. #endif  /* _POSIX_SOURCE */
  79.  
  80. extern char *setlocale(/* int category, const char *locale */);
  81. extern struct lconv *localeconv(/* void */);
  82. #ifndef _POSIX_SOURCE
  83. extern struct dtconv *localdtconv();
  84. #endif
  85.  
  86. /*
  87.  * Numeric and monetary conversion information.
  88.  */
  89. struct lconv {
  90.         char    *decimal_point; /* decimal point character */
  91.         char    *thousands_sep; /* thousands separator character */
  92.         char    *grouping;      /* grouping of digits */
  93.         char    *int_curr_symbol;       /* international currency symbol */
  94.         char    *currency_symbol;       /* local currency symbol */
  95.         char    *mon_decimal_point;     /* monetary decimal point character */
  96.         char    *mon_thousands_sep;     /* monetary thousands separator */
  97.         char    *mon_grouping;  /* monetary grouping of digits */
  98.         char    *positive_sign; /* monetary credit symbol */
  99.         char    *negative_sign; /* monetary debit symbol */
  100.         char    int_frac_digits; /* intl monetary number of fractional digits */        char    frac_digits;    /* monetary number of fractional digits */
  101.         char    p_cs_precedes;  /* true if currency symbol precedes credit */
  102.         char    p_sep_by_space; /* true if space separates c.s.  from credit */
  103.         char    n_cs_precedes;  /* true if currency symbol precedes debit */
  104.         char    n_sep_by_space; /* true if space separates c.s.  from debit */
  105.         char    p_sign_posn;    /* position of sign for credit */
  106.         char    n_sign_posn;    /* position of sign for debit */
  107. };
  108.  
  109. #ifndef _POSIX_SOURCE
  110. /*
  111.  * Date and time conversion information.
  112.  */
  113. struct dtconv {
  114.         char    *abbrev_month_names[12];        /* abbreviated month names */
  115.         char    *month_names[12];       /* full month names */
  116.         char    *abbrev_weekday_names[7];       /* abbreviated weekday names */
  117.         char    *weekday_names[7];      /* full weekday names */
  118.         char    *time_format;   /* time format */
  119.         char    *sdate_format;  /* short date format */
  120.         char    *dtime_format;  /* date/time format */
  121.         char    *am_string;     /* AM string */
  122.         char    *pm_string;     /* PM string */
  123.         char    *ldate_format;  /* long date format */
  124. };
  125.  
  126. /*
  127.  * Langinfo
  128.  */
  129. struct langinfo {
  130.         char *yesstr;   /* yes string */
  131.         char *nostr;    /* nostr */
  132. };
  133.  
  134. /*
  135.  * NLS nl_init
  136.  */
  137. #define valid(ptr) (ptr != (char *) NULL)
  138. #define nl_init(lang) ((valid(lang) && *lang) ? \
  139.     (valid(setlocale (LC_ALL, lang) ) ? 0 : -1) \
  140.     : -1)
  141. #endif  /* _POSIX_SOURCE */
  142.  
  143. #endif / *!_LOCALE_H */
  144.  
  145.